/**
 * 类型
 */
export enum WorkflowLinkDb {
  COND_TYPE_FORM = '',
  COND_TYPE_DEPT = 'dept',
  COND_TYPE_DEPT_BELONG = 'dept_belong',
  COND_TYPE_ROLE = 'role',
  COND_TYPE_SCRIPT = 'script',
  COND_TYPE_COMB_COND = 'comb_cond',
  COND_TYPE_NONE = '-1',
}

export enum FormField {
  TYPE_TEXTFIELD = 'text',
  TYPE_TEXTAREA = 'textarea',
  TYPE_SELECT = 'select',
  TYPE_LIST = 'list',
  TYPE_CHECKBOX = 'checkbox',
  TYPE_RADIO = 'radio',
  TYPE_DATE = 'DATE',
  TYPE_DATE_TIME = 'DATE_TIME',
  TYPE_MACRO = 'macro',

  TYPE_CALCULATOR = 'CALCULATOR',
  TYPE_SQL = 'SQL',
  TYPE_BUTTON = 'BUTTON',

  MACRO_NOT = '0',

  FORMAT_DATE = 'yyyy-MM-dd',
  FORMAT_DATE_TIME = 'yyyy-MM-dd HH:mm:ss',

  FIELD_TYPE_VARCHAR = 0,
  FIELD_TYPE_TEXT = 1,
  FIELD_TYPE_INT = 2,
  FIELD_TYPE_LONG = 3,
  FIELD_TYPE_BOOLEAN = 4,
  FIELD_TYPE_FLOAT = 5,
  FIELD_TYPE_DOUBLE = 6,
  FIELD_TYPE_DATE = 7,
  FIELD_TYPE_DATETIME = 8,
  /**
   * 价格型，00.00
   */
  FIELD_TYPE_PRICE = 9,
  /**
   * 长文本型
   */
  FIELD_TYPE_LONGTEXT = 10,

  /**
   * 不隐藏
   */
  HIDE_NONE = 0,
  /**
   * 流程中编辑和显示时及模块显示、添加、编辑时均隐藏
   */
  HIDE_ALWAYS = 1,
  /**
   * 流程及模块中仅编辑时隐藏
   */
  HIDE_EDIT = 2,

  /**
   * 单行文本框字段的默认长度
   */
  TEXT_FIELD_DEFAULT_LENGTH = 30,

  /**
   * 不参与查询
   */
  QUERY_MODE_NO = 0,
  /**
   * 参与查询
   */
  QUERY_MODE_YES = 1,
  /**
   * 辅助查询，如果在查询设置中被选择，则系统不会为此字段自动生成查询，需手动在过滤条件中组装该条件
   */
  QUERY_MODE_HELPER = 2,

  /*
     MACRO_USER_SELECT = "macro_user_select",
     MACRO_BOARDROOM_SELECT =
            "macro_boardroom_select",
     MACRO_VEHICLE_SELECT = "macro_vehicle_select",
     MACRO_DRIVER_SELECT = "macro_driver_select",
     MACRO_DEPT_SELECT = "macro_dept_select",
     MACRO_CURRENT_USER = "macro_current_user",
     MACRO_CUSTOMER_LIST_WIN =
            "macro_customer_list_win",
     MACRO_LINKMAN_LIST_WIN =
            "macro_linkman_list_win",
     MACRO_PROVIDER_LIST_WIN =
            "macro_provider_list_win",
     MACRO_PRODUCT_LIST_WIN =
            "macro_product_list_win",
     MACRO_PRODUCT_SERVICE_LIST_WIN =
            "macro_product_service_list_win",
     MACRO_SIGN = "macro_sign",
     MACRO_IDEA = "macro_idea",
     MACRO_WORKFLOW_SEQUENCE = "macro_flow_sequence",
*/

  DATE_CURRENT = 'CURRENT',

  /**
   * 不唯一，默认
   */
  UNIQUE_NONE = 0,
  /**
   * 全局唯一
   */
  UNIQUE_GLOBAL = 1,
  /**
   * 嵌套表（或关联模块）唯一
   */
  UNIQUE_NEST = 2,

  /**
   * 格式化：千分位
   */
  FORMAT_THOUSANDTH = '0',

  /**
   * 格式化：百分比，如0.01将会被转换为1%
   */
  FORMAT_PERCENTAGE = '1',
}

export enum WorkflowPredefineDb {
  TYPE_SYSTEM = 1,
  TYPE_USER = 0,

  /**
   * 按流程图流转
   */
  RETURN_MODE_NORMAL = 0,

  /**
   * 返回给打回者
   */
  RETURN_MODE_TO_RETURNER = 1,

  /**
   * 按流程图返回至设定的人员
   */
  RETURN_STYLE_NORMAL = 0,

  /**
   * 可返回至任一已处理过的人员
   */
  RETURN_STYLE_FREE = 1,

  /**
   * 不判断下一节点
   */
  ROLE_RANK_MODE_NONE = 0,

  /**
   * 如果下一节点小于则跳过
   */
  ROLE_RANK_NEXT_LOWER_JUMP = 2,
  //  ROLE_RANK_NEXT_LOWERANDEQUAL_JUMP = 2,

  COMB_COND_TYPE_FIELD = 'comb_field',
  COMB_COND_TYPE_PRIV_ROLE = 'comb_priv_role',
  COMB_COND_TYPE_PRIV_DEPT = 'comb_priv_dept',

  WRITE_BACK_UPDATE = 0,
  WRITE_BACK_INSERT = 1,
  /**
   * 更新并插入新数据
   */
  WRITE_BACK_UPDATE_INSERT = 2,
}

export enum WorkflowActionDb {
  RESULT_VALUE_AGGREE = 1,
  RESULT_VALUE_DISAGGREE = -1,
  RESULT_VALUE_CONTINUE = 2, // 继续
  RESULT_VALUE_NOT_ACCESSED = -2, // 未处理
  RESULT_VALUE_RETURN = 3, // 返回
  RESULT_VALUE_TO_RETUNER = 4, // 直送
  RESULT_VALUE_READED = 5, // 审阅
  userRealName = '-1',

  /**
   * 未处理
   */
  STATE_NOTDO = 0,
  /**
   * 忽略/跳过
   */
  STATE_IGNORED = 1,
  /**
   * 正在办理
   */
  STATE_DOING = 2,
  /**
   * 被退回
   */
  STATE_RETURN = 3,
  /**
   * 已处理
   */
  STATE_FINISHED = 4,
  /**
   * 已放弃
   */
  STATE_DISCARDED = -1,

  /**
   * 转办
   */
  STATE_TRANSFERED = 5,
  /**
   * 移交
   */
  STATE_HANDOVER = 6,

  /**
   * 加签，仅用于MyActionDb的actionStatus(到达时状态)
   */
  STATE_PLUS = 7,

  /**
   * 从挂起恢复
   */
  STATE_SUSPEND_OVER = 8,

  /**
   * 被延迟
   */
  STATE_DELAYED = 9,

  /**
   * 自选用户
   */
  PRE_TYPE_USER_SELECT = '$userSelect',

  /**
   * 自选用户（有权限管理的部门）
   */
  PRE_TYPE_USER_SELECT_IN_ADMIN_DEPT = '$userSelectInAdminDept',

  /**
   * 发起人
   */
  PRE_TYPE_STARTER = '$starter',
  /**
   * 往前两个节点
   */
  PRE_TYPE_FORE_ACTION = '$foreAction',
  /**
   * 本人（发起流程）
   */
  PRE_TYPE_SELF = '$self',
  /**
   * 我的领导
   */
  PRE_TYPE_MYLEADER = '$myleader',
  /**
   * 我的下属
   */
  PRE_TYPE_MYSUBORDINATE = '$mysubordinate',
  /**
   * 部门管理员
   */
  PRE_TYPE_DEPT_MGR = '$deptManager',
  /**
   * 某个节点上的处理人员
   */
  PRE_TYPE_ACTION_USER = '$action',
  /**
   * 表单中指定的人员
   */
  PRE_TYPE_FIELD_USER = '$field',

  PRE_TYPE_PROJECT_ROLE = '$projectRole',

  PRE_TYPE_NODE_SCRIPT = '$nodeScript',

  STRING_ARRAY_LENGTH = 26, // 20060706 至,,,...,,dept,A_END的数组长度

  NODE_MODE_ROLE = 0, // 表示userName中记录的是role
  NODE_MODE_USER = 1, // 表示userName中记录的是user
  NODE_MODE_POST = 4, // 表示userName中记录的是岗位

  NODE_MODE_ROLE_SELECTED = 2, // 表示角色已被选择，人员被确定
  NODE_MODE_USER_SELECTED = 3, // 表示用户已被选择，人员被确定
  NODE_MODE_POST_SELECTED = 5, // 表示岗位已被选择，人员被确定

  DIRECTION_DOWN = 0,
  DIRECTION_PARALLEL_MYDEPT = 1, // 本部门及平行部门
  DIRECTION_UP = 2,
  DIRECTION_MYDEPT = 3, // 方向为本部门
  DIRECTION_PARALLEL = 4, // 平行
  DIRECTION_PARALLEL_MYDEPT_UP = 5, // 本部门、平行，如果找不到，则继续往上

  /**
   * 先本部门，然后上行
   */
  DIRECTION_MYDEPT_UP = 6,

  /**
   * 找上级领导模式，按照先本部门后上行的方式，如果本人角色是指定的角色，则继续往上级部门寻找
   */
  DIRECTION_MY_LEADER = 7,

  resultValue = WorkflowActionDb.RESULT_VALUE_NOT_ACCESSED,

  /**
   * 动作类型：处理
   */
  KIND_ACCESS = 0,
  /**
   * 动作类型：审阅
   */
  KIND_READ = 1,

  /**
   * 子流程
   */
  KIND_SUB_FLOW = 2,

  /**
   * 行文方向关联，默认为default，表示上一节点
   */
  RELATE_TO_ACTION_DEFAULT = 'default',
  /**
   * 关联发起人
   */
  RELATE_TO_ACTION_STARTER = 'starter',
  /**
   * 关联表单中的按字段排序的第一个部门字段
   */
  RELATE_TO_ACTION_DEPT = 'dept',

  /**
   * 跳过方式，默认为0，表示无用户时跳过
   */
  IGNORE_TYPE_DEFAULT = 0,
  /**
   * 跳过方式，无用户时不允许跳过
   */
  IGNORE_TYPE_NOT = 1,

  /**
   * 跳过方式，无用户或用户之前处理过则跳过
   */
  IGNORE_TYPE_USER_ACCESSED_BEFORE = 2,

  /**
   * 角色比较大小时，不允许跳过 20161124 fgf
   */
  IGNORE_TYPE_ROLE_COMPARE_NOT = 3,

  /**
   * 前加签
   */
  PLUS_TYPE_BEFORE = 0,
  /**
   * 后加签
   */
  PLUS_TYPE_AFTER = 1,
  /**
   * 并签
   */
  PLUS_TYPE_CONCURRENT = 2,

  /**
   * 加签时顺序处理
   */
  PLUS_MODE_ORDER = 0,
  /**
   * 加签时有一人处理完毕，即往下流转
   */
  PLUS_MODE_ONE = 1,
  /**
   * 加签时全部加签人员都处理完毕才往下流转
   */
  PLUS_MODE_ALL = 2,

  /**
   * 分支允许多选
   */
  BRANCH_MODE_MULTI = 1,

  /**
   * 分支只能单选
   */
  BRANCH_MODE_SINGLE = 0,
}

export enum ModuleUtil {
  /**
   * 用于在request置ModuleSetupDb属性，生成SQL语句时将会调用此属性
   */
  MODULE_SETUP = 'MODULE_SETUP',
  /**
   * 用于在request属性中保存过滤条件，在module_list_nest_sel.jsp拉单页面中调用，生成SQL语句时将会调用此属性
   */
  NEST_SHEET_FILTER = 'NEST_SHEET_FILTER',

  NEST_SHEET_FILTER_USE_MODULE = 'isUseModuleFilter',

  FILTER_CUR_USER = '{$curUser}',
  FILTER_CUR_USER_DEPT = '{$curUserDept}',
  FILTER_CUR_USER_ROLE = '{$curUserRole}',
  FILTER_ADMIN_DEPT = '{$admin.dept}',
  FILTER_CUR_USER_DEPT_AND_CHILDREN = '{$curUserDeptAndChildren}',
  /**
   * 主表ID
   */
  FILTER_MAIN_ID = '{$mainId}',

  seperator = '-|-',

  CHECKBOX_GROUP_PREFIX = 'CHECK_GROUP_',

  /**
   * 当前日期
   */
  FILTER_CUR_DATE = '{$curDate}',

  FILTER_CUR_YEAR = '{$curYear}',

  FILTER_CUR_MONTH = '{$curMonth}',
}
export enum SQLBuilder {
  /**
   * 模糊查询，包含
   */
  COND_TYPE_FUZZY = '0',

  /**
   * 准确查询，等于
   */
  COND_TYPE_NORMAL = '1',

  /**
   * 一段范围，用于数值型的表单域
   */
  COND_TYPE_SCOPE = '2',

  /**
   * 下拉菜单，可以勾选多个
   */
  COND_TYPE_MULTI = '3',

  /**
   * 两个模块之间没有关联关系
   */
  IS_NOT_RELATED = 'isNotRelated',

  /**
   * 不限，不含临时记录
   */
  CWS_STATUS_NOT_LIMITED = 10000,
  /**
   * 为空
   */
  IS_EMPTY = '=空',
  /**
   * 不为空
   */
  IS_NOT_EMPTY = '<>空',

  /**
   * 如果模块的过滤条件中是完整的
   */
  TABLE_ALIAS_NUM_MIN = 100,
}
